package cn.watson.org.domain;

import cn.watson.basic.domain.BaseDomain;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.swing.*;
import java.util.ArrayList;
import java.util.List;

/**
 * 部门实体类
 */
@Data // 提供get set tosing
@NoArgsConstructor // 有参构造
@AllArgsConstructor // 无参构造
public class Department extends BaseDomain {
    // 主键
    //private Long id;

    // 部门编号
    private String sn;
    // 部门名称
    private String name;
    // 上级部门层级id
    private String dirPath;
    // 状态1启用 0 禁用
    private Integer state;
    // 部门管理员
    private  Long managerId;
    // 上级部门ID
    private Long parentId;

    // 部门经理对象字段
    private Employee manager;
    // 添加上级部门对象字段
    private Department parent;

    // 封装子部门集合
    @JsonInclude(JsonInclude.Include.NON_EMPTY) // 当数据不为空时返回
    private List<Department> children = new ArrayList<>();
}
